import axios from "axios";
import { useStore } from '@/store'
const store = useStore()

// axios.defaults.baseURL = ''  //正式
// axios.defaults.baseURL = 'http://test' //测试
const service = axios.create({
    // baseURL: process.env.NODE_ENV === "production" ? process.env.VUE_APP_REQUEST_URL : "/", // api的base_url
    timeout: 30000 // 请求超时时间
});

//post请求头
// axios.defaults.headers.post["Content-Type"] ="application/x-www-form-urlencoded;charset=UTF-8";
//设置超时
// axios.defaults.timeout = 10000;
// ts定义，不定义使用会显示错误
declare module 'axios' {
    interface AxiosInstance {
        (config: AxiosRequestConfig): Promise<any>
    }
}

service.interceptors.request.use(
    config => {
        // config.headers["token"] = sessionStorage.getItem("token");
        config.headers["token"] = store.openid
        return config;
    },
    error => {
        return Promise.reject(error);
    }
);

service.interceptors.response.use(
    response => {
        if (response.status == 200) {
            console.log(response)
            return Promise.resolve(response.data);
        } else {
            return Promise.reject(response);
        }
    },
    error => {
        // alert(`异常请求：${JSON.stringify(error.message)}`)
        console.log(`异常请求：${JSON.stringify(error.message)}`)
        return Promise.reject(error);
    }
);
// function request({url, method, data, params}) {
//     return new Promise((resolve, reject) => {
//       service({
//           method,
//           url,
//         //   data: qs.stringify(data),
//           data,
//           params,
//         })
//         .then(res => {
//           resolve(res.data)
//         })
//         .catch(err => {
//           reject(err)
//         });
//     })
// }
export default service;
// export default {
//   post(url, data) {
//     return new Promise((resolve, reject) => {
        
//       service({
//           method: 'post',
//           url,
//         //   data: qs.stringify(data),
//           data: data,
//         })
//         .then(res => {
//           resolve(res.data)
//         })
//         .catch(err => {
//           reject(err)
//         });
//     })
//   },

//   get(url, data) {
//     return new Promise((resolve, reject) => {
//       service({
//           method: 'get',
//           url,
//           params: data,
//         })
//         .then(res => {
//           resolve(res.data)
//         })
//         .catch(err => {
//           reject(err)
//         })
//     })
//   }
// };